1. Field
This disclosure relates generally to data processing, and more specifically, to error detection in a multi-processor data processing system.
2. Related Art
Some applications for integrated circuit data processing systems require a higher than average level of reliability. For example, fly-by-wire, anti-lock braking, automobile airbags, and other systems where a failure can result in injury, are examples of systems that require highly reliable operation.
There are many ways to improve reliability. For example, in a memory, reliability can be improved by adding redundant components that take over when the primary components fail. In a multi-processor system, better reliability has been achieved by running multiple processors in “lockstep”. When two or more processors are running in lockstep, each processor is executing the same instruction stream at the same time. To remain in lockstep, each processor, central processing unit (CPU), or core, must be exposed to the same stimulus, including for example, exception processing. Normally, this is not an issue because all of the cores are executing the same instruction stream. However, internal errors can occur in one core, such as soft errors in a cache, which are almost never duplicated in the other core(s). The actions of the cores will be different following detection of the soft error and may cause the cores to fall out of lockstep, resulting in a system failure.
Therefore, what is needed is a multi-processor system that solves the above problems.